Dart Analyzer AnalysisDriver

读取和分析 Dart 文件的内容,计算分析结果。进行 Dart 静态分析的驱动者,负责处理分析请求,将其传给 AnalysisContext 进行实际分析。

类属性

属性 类型 作用
DATA_VERSION 静态常量,表示数据格式的版本。每次数据格式发生变化时,都应该增加这个值。
allowedNumberOfContextsToWrite 允许写入的异常上下文的数量
_scheduler AnalysisDriverScheduler 调度分析工作的调度器。
_logger PerformanceLog 性能记录。
_resourceProvider ResourceProvider 处理文件相关操作
_byteStore ByteStore 获取和存储序列化的数据。
_infoDeclarationStore InfoDeclarationStore 缓存从 SummaryDataReader 读取的反序列化数据。
_externalSummaries SummaryDataStore? 存储外部提供的未链接和相应的链接摘要。
_fileContentCache FileContentCache 从文件读取内容之前,会先查询这个缓存。
_unlinkedUnitStore UnlinkedUnitStore 已经加载的未链接单元会在此存储。
_fileContentStrategy StoredFileContentStrategy 处理文件内容的策略。
_analysisOptions AnalysisOptionsImpl 用于指定分析选项。
_packages Packages 包和它们的语言版本。
_sourceFactory SourceFactory 用于解析 URI 到路径,以及从文件路径恢复 URI。
macroSupport MacroSupport 用于执行宏。
ownedFiles OwnedFiles 与同一集合中的其他驱动程序共享,所有驱动程序都在其中记录文件所有权。
declaredVariables DeclaredVariables 表示声明的环境变量。
analysisContext DriverBasedAnalysisContext 创建此驱动程序/会话的分析上下文。
_saltForUnlinked
_saltForElements
_saltForResolution
Uint32List 用于混入所有用作未链接数据、元素和链接数据键的哈希中。
_priorityFiles Set<String> 表示应优先分析的文件集。
_pendingFileChanges _FileChange 在处理请求之前应用的文件更改。
_accumulatedAffected Set<String> _applyFileChangesSynchronously  为 true 时,受影响的文件会在此累积。
_pendingFileChangesCompleters Completer<List<String>> 用于在应用 _pendingFileChanges 后完成。
_requestedFiles 映射 键是使用 getResult 请求分析的文件,
值是用于报告结果的 Completer 列表。
_requestedLibraries 映射 键是使用 getResolvedLibrary 请求分析的库文件类型,
值是用于报告结果的 Completer 列表。
_resolveForCompletionRequests _ResolveForCompletionRequest 列表 表示完成请求的队列。
_discoverAvailableFilesTask _DiscoverAvailableFilesTask? 表示发现可用文件的任务。如果此字段不为 null,并且任务未完成,则应在任何名称搜索任务之前执行并完成此任务。
| _FilesDefiningClassMemberNameTask 用于计算定义类成员名称的文件的任务。
_referencingNameTasks _FilesReferencingNameTask 用于计算引用名称的文件的任务。
_errorsRequestedFiles 映射 键是使用 getErrors 请求错误的文件,
值是用于报告结果的 Completer 列表。
_indexRequestedFiles 映射 键是使用 getIndex 请求索引的文件,
值是用于报告结果的 Completer 列表。
_unitElementRequestedFiles 映射 键是使用 getUnitElement 请求单元元素的文件,
值是用于报告结果的 Completer 列表。
_disposeRequests Completer<void>  列表 表示处置请求,通常为空。我们期望最多添加一个,即在生命周期的最后。
_resultController StreamController<Object> 用于控制 results 流。
_onResults Stream<Object> 当产生分析结果时,将写入此流。
_lastProducedSignatures 映射 键是文件名,
值是最近生成的结果的解析签名。
_priorityResults 映射 键是文件名,
值是 _priorityFiles 的缓存结果。
_resolvedLibraryCache 映射 键是库文件类型,
值是 getResolvedLibrary 的缓存结果。
_exceptionController StreamController<ExceptionResult> 用于控制 exceptions 流。
_search Search 用于帮助搜索。
testView AnalysisDriverTestView? 用于测试视图。
featureSetProvider FeatureSetProvider 用于提供特性集。
_fsState FileSystemState 表示文件系统状态。
_fileTracker FileTracker 用于跟踪文件。
enableIndex bool 表示是否应该索引解析的单元。
_libraryContext LibraryContext? 表示应该在哪个上下文中分析库。
_hasDartCoreDiscovered bool 是否已经递归地发现了 dart:core。
_hasLibrariesDiscovered bool 表示是否已经发现了库。
当添加新文件时,此标志会被重置为 false,因为新文件可能是一个库,所以现在可以分析一些之前被断开的部分。
testingData TestingData? 如果正在保留测试数据,则指向保留测试数据的对象。否则为 null。
_disposed bool

本文作者:Maeiee

本文链接:Dart Analyzer AnalysisDriver

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!